3 de febrero del 2023
“Learning dexterous in-hand manipulation” de OpenAI requirió de lo siguiente:
| Simulador | Física | Fotorrealista | DR | ROS | GPU | Multi-GPU |
|---|---|---|---|---|---|---|
| Gazebo | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
| Pybullet | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| MuJoCo | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Unity | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
| IsaacSim | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
“Es posible generar una política de control optimizada para la solución de una tarea de seguimiento de trayectorias sobre superficies tridimensionales usando un robot manipulador, mediante un ambiente de simulación física realista que provea las observaciones necesarias para el entrenamiento, empleando una combinación de técnicas de control tradicionales y algoritmos de DRL de forma eficiente, reduciendo el número de interacciones del agente y los recursos computacionales durante el entrenamiento”
\[ \mathbf{C}(u) = \sum_{i=0}^{i<n} N_{i,p}(u) \mathbf{P}_{i} \]
\[ \begin{split} N_{i, p}(u) = \frac{u-u_{i}}{u_{i+p}-u_{i}} N_{i,p-1}(u) + \cdots \\ \frac{u_{i+p+1}-u}{u_{i+p+1}-u_{i+1}} N_{i+1, p-1}(u) \end{split} \]
\[ N_{i, 0}(u)=\left\{\begin{array}{cc} 1 & \text { si } u_{i} \leq u<u_{i+1} \\ 0 & \text { si no } \end{array}\right. \]
\[ \begin{align*} \textbf{p}_{uv} &= -\begin{bmatrix} 2 \pi s + \pi \\ \pi t + \frac{\pi}{2} \end{bmatrix} \\\\ \textbf{p}_{xyz} &= r \begin{bmatrix} \cos{(v)} \cos{(u)} \\ \cos{(v)} \sin{(u)} \\ \sin{(v)} \end{bmatrix} \\\\ \textbf{n} &= \begin{bmatrix} \sin{(u)} \cos{(v)} \\ \sin{(v)} \sin{(u)} \\ \cos{(u)} \end{bmatrix} \end{align*} \]
\[ \tau = \textbf{J}_{ee}^{T}(\textbf{q}) \textbf{M}_{\textbf{x}_{ee}}(\textbf{q}) [k_{p}(\delta_x) + k_v(\delta_{\dot{x}})] + \textbf{g}(\textbf{q}) \]
\[ \begin{align*} \text{Distancia} \rightarrow R_{d} &= -{\lVert \textbf{x}_{ee} - \textbf{x}_d \lVert}_2 \\\\ \text{Orientación} \rightarrow R_{o} &= -{\lVert \mathcal{H}(\textbf{q}_d, \textbf{q}^{*}_{ee}) \lVert}_2 \\\\ \text{Regularización} \rightarrow R_{c} &= -{\lVert \textbf{a} \lVert}^{2}_2 \\\\ \text{Recompensa final} \rightarrow R &= \alpha R_d + \beta R_o + \gamma R_c \end{align*} \]
PPO-Clip actualiza la política con: \[ \theta_{k+1} = \underset{\theta}{\mathrm{arg \space max}} \space \mathrm{E} \space \left[ L(s, a, \theta_k, \theta) \right] \]
Función objetivo: \[ L(s, a, \theta_k, \theta) = \min{\left( \frac{\pi_{\theta}(a|s)}{\pi_{\theta_{k}}(a|s)} A^{\pi_{\theta_{k}}}(s,a), \space\space g(\epsilon, A^{\pi_{\theta_{k}}}(s,a)) \right)} \]
Donde: \[ g(\epsilon, A) = \left\{\begin{array}{cc} (1 + \epsilon)A & \text { si } A \geq 0 \\ (1 - \epsilon)A & \text { si } A < 0 \end{array}\right. \]